package com.jason.cloud.engine.share.driver.role.dao;

import com.jason.cloud.engine.share.driver.enterprise.bean.EnterpriseBean;
import com.jason.cloud.engine.share.driver.role.bean.RoleBean;
import com.jason.cloud.engine.share.driver.user.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleDao {

    /**
     * 根据ID查询对象
     * @param id
     * @return
     */
    RoleBean queryRoleById(String id);

    /**
     * 拷贝默认角色
     * @param enterpriseId
     * @return
     */
    void copyEnterpriseRoleByDefault(String enterpriseId);

    /**
     * 根据企业ID查询默认的角色
     * @param enterpriseId
     * @return
     */
    RoleBean queryDefaultRoleByEnterpriseId(String enterpriseId);

    /**
     * 列举所有角色
     * @return
     */
    List<RoleBean> getRoleLimitByEnterpriseId(@Param("page") int page, @Param("size") int size, @Param("enterpriseId") String enterpriseId);

    /**
     * 计数角色
     * @return
     */
    int getRoleCountByEnterpriseId(@Param("enterpriseId") String enterpriseId);

    /**
     * 增加角色
     * @param role
     */
    void insertRole(RoleBean role);

    /**
     * 加载角色
     * @param enterpriseId
     * @return
     */
    List<RoleBean> getRoleByEnterpriseId(@Param("enterpriseId") String enterpriseId);
}
